<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of DB_mysql
 *
 * @author JONATHAN
 */
class CLASEMSSQL {
    /* variables de conexiOn */

    var $BaseDatos;
    var $Servidor;
    var $Usuario;
    var $Clave;

    /* identificador de conexión y consulta */
    var $Conexion_ID;
    var $Consulta_ID;

    /* número de error y texto error */
    var $Error = "";

    /* Método Constructor: Cada vez que creemos una variable
      de esta clase, se ejecutará esta función */

    function DB_MSSQL($bd = "datos", $host = "(local)\SQLEXPRESS", $user = "sa", $pass = "123456") {
        $this->BaseDatos = $bd;
        $this->Servidor = $host;
        $this->Usuario = $user;
        $this->Clave = $pass;
    }

    /* Conexión a la base de datos */

    function conectar($bd, $host, $user, $pass) {
        if ($bd != "")
            $this->BaseDatos = $bd;
        if ($host != "")
            $this->Servidor = $host;
        if ($user != "")
            $this->Usuario = $user;
        if ($pass != "")
            $this->Clave = $pass;

// Conectamos al servidor
        $connectionInfo = array("UID" => $this->Usuario, "PWD" => $this->Clave, "Database" => $this->BaseDatos);
        $this->Conexion_ID = sqlsrv_connect($this->Servidor, $connectionInfo);
        if ($this->Conexion_ID) {
            echo "Connection establecida.<br>";
        } else {
            echo "La conneccion no se pudo establecer.<br>";
            die(print_r(sqlsrv_errors(), true));
        }

        return $this->Conexion_ID;
    }

    /* Ejecuta un consulta */

    function consulta($sql = "") {
        if ($sql == "") {
            $this->Error = "No ha especificado una consulta SQL";
            echo $this->Error . "<br>";
            return 0;
        }

//ejecutamos la consulta

        $this->Consulta_ID = sqlsrv_query($this->Conexion_ID, $sql);
        if ($this->Consulta_ID) {
            echo "Consulta ejecutada correctamente.<br>";
        } else {
            $this->Error = "Error en la consulta.<br>";
            echo $this->Error;
        }

        return $this->Consulta_ID;
    }

    /* Devuelve el número de campos de una consulta */

    function numcampos() {
        return sqlsrv_num_fields($this->Consulta_ID);
    }

    /* Devuelve el número de registros de una consulta */

    function numregistros() {
        return sqlsrv_num_rows($this->Consulta_ID);
    }

    /* Devuelve el nombre de un campo de una consulta */

    function nombrecampo($numcampo) {
        return sqlsrv_get_field($this->Consulta_ID, $numcampo, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR));
    }
    /*Retornar objeto conection*/
    function Coneccion(){
        return $this->Consulta_ID;
    }
    /*Retornar todo en un array*/
    function RetArray(){
        $row = sqlsrv_fetch($this->Consulta_ID);
        return $row;
    }
    function Cadena($num){
        return sqlsrv_get_field($this->Consulta_ID, $num, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR));
    }
    /* Muestra los datos de una consulta */

    function verconsulta() {
        echo "<table border=1>\n";
// mostramos los nombres de los campos
        for ($i = 0; $i < $this->numcampos(); $i++) {
            echo "<td><b>" . $this->nombrecampo($i) . "</b></td>\n";
        }

        echo "</tr>\n";
// mostrarmos los registros
        while ($row = sqlsrv_fetch($this->Consulta_ID)) {
            echo "<tr> \n";
            for ($i = 0; $i < $this->numcampos(); $i++) {
                echo "<td>" . sqlsrv_get_field($this->Consulta_ID, $i, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_CHAR)) . "</td>\n";
            }
            echo "</tr>\n";
        }
    }

}

//fin de la Clse DB_mysql
?>